import request from '@/utils/request';
import type { BaseBeanModel, QueryParamModel, ResponseBaseData, ResponsePageData } from '@/api/model/baseModel';
const basePath = '/appsys/lookup/LookupRest';
import type { downloadParam } from '@/utils/download-util';
import { download } from '@/utils/download-util';

/** 通用代码类型表 */
export interface SysLookupTypeDto extends BaseBeanModel {
  /** 应用ID */
  sysApplicationId?: string;
  /** 代码类型 */
  lookupType?: string;
  /** 是否为系统初始Y 是 N 否 */
  systemFlag?: string;
  /** 是否有效1代表有效,0代表无效 默认为1 */
  validFlag?: string;
  /** 所属模块 */
  belongModule?: string;
  /** 0 公有可用     1私有可用 */
  usageModifier?: string;
  /** 代码名称 */
  lookupTypeName?: any;
  /** 代码描述 */
  lookupTypeDesc?: any;
}
/**
 * 获取主表分页数据
 * @param param 表格参数
 * @returns  表格参数数据
 */

export function listSysLookupTypeByPage(param: QueryParamModel): Promise<ResponsePageData<SysLookupTypeDto>> {
  return request.post(`${basePath}/search-main-by-page/v1`, param);
}

/**
 * 根据id加载数据
 * @param id 选中行id
 * @returns 表单数据
 */
export function getSysLookupType(id: string): Promise<ResponseBaseData<SysLookupTypeDto>> {
  return request.get(`${basePath}/get-main/${id}/v1`);
}

/**
 * 根据id集合删除数据
 * @param id 选中行id
 */
export function delSysLookupType(ids: [string]): Promise<ResponseBaseData<any>> {
  return request.delete(`${basePath}/delete-main-by-ids/${ids}/v1`);
}

/**
 * 导出
 * @param param 导出数参数
 */
export function exportXml(param: any) {
  const download1 = {
    url: `${basePath}/export-xml/v1`,
    data: param,
    method: 'post'
  } as downloadParam;
  return download(download1);
}

/**
 * 保存表单数据
 * @param form 表单数据
 */
export function saveSysLookupType(form: SysLookupTypeDto): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/save-main/v1`, form);
}

/**
 * 编辑保存表单数据
 * @param form 编辑表单数据
 */
export function editSaveSysLookupType(form: SysLookupTypeDto): Promise<ResponseBaseData<any>> {
  return request.put(`${basePath}/update-main/v1`, form);
}
